package cn.dansj.common.processor.meta;

import cn.dansj.common.processor.TargetType;

import java.lang.annotation.*;

@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface WriteToResource {
    String directory() default "";

    TargetType type() default TargetType.SpringFactories;

    /**
     * 第一优先级
     */
    Class<?>[] key() default Void.class;

    /**
     * 第二优先级
     */
    String[] keyProperty() default {};

    /**
     * 第三优先级, 自动接口
     * <br/>
     * 是否多接口, 用于自动判断时, 多个接口全部写入还是只写入第一个接口
     */
    boolean autoInterfacesSingleton() default false;
}
